#

| Chapter 26 Regular Expressions (Pattern Matching) |

## 26.9 Valid Metacharacters for Different UNIX Programs

Some regular expression metacharacters are valid for one program but not for another. Those that are available to a particular UNIX program are marked by a bullet () in Table 26.4. Quick reference descriptions of each of the characters can be found in article 26.10.

[Unfortunately, even this table doesn't give the whole story. For example, Sun has taken some of the extensions originally developed for ed, ex, and vi (such as the `\< \>` and `\{``min, max``\}` modifiers) and added them to other programs that use regular expressions. So don't be bashful - try things out, but just don't be surprised if every possible regular expression feature isn't supported by every program. In addition, there are many programs that recognize regular expressions, such as perl, emacs, more, dbx, expr, lex, pg, and less, that aren't covered in Daniel's table. -TOR ]

Table 26.4: Valid Metacharacters for Different Programs
Symbol | ed | ex | vi | sed | awk | grep | egrep | Action
--- | --- | --- | --- | --- | --- | --- | --- | ---
. |  |  |  |  |  |  |  | Match any character.
* |  |  |  |  |  |  |  | Match zero or more preceding.
^ |  |  |  |  |  |  |  | Match beginning of line.
$ |  |  |  |  |  |  |  | Match end of line.
\ |  |  |  |  |  |  |  | Escape character following.
[ ] |  |  |  |  |  |  |  | Match one from a set.
\(\) |  |  |  |  |  |  |  | Store pattern for later replay.
\{\} |  |  |  |  |  |  |  | Match a range of instances.
\<\> |  |  |  |  |  |  |  | Match word's beginning or end.
+ |  |  |  |  |  |  |  | Match one or more preceding.
? |  |  |  |  |  |  |  | Match zero or one preceding.
| |  |  |  |  |  |  |  | Separate choices to match.
() |  |  |  |  |  |  |  | Group expressions to match.

In ed, ex, and sed, note that you specify both a search pattern (on the left) and a replacement pattern (on the right). The metacharacters in Table 26.4 are meaningful only in a search pattern. ed, ex, and sed support the additional metacharacters in Table 26.5 that are valid only in a replacement pattern.

Table 26.5: Valid Metacharacters for Replacement Patterns
Symbol | ex | sed | ed | Action
--- | --- | --- | --- | ---
\ |  |  |  | Escape character following.
\`n` |  |  |  | Reuse pattern stored in `\( \)`.
& |  |  |  | Reuse previous search pattern.
~ |  |  |  | Reuse previous replacement pattern.
\u \U |  |  |  | Change character(s) to uppercase.
\l \L |  |  |  | Change character(s) to lowercase.
\E |  |  |  | Turn off previous `\U` or `\L`.
\e |  |  |  | Turn off previous `\u` or `\l`.

- DG

26.8 I Never Meta Character I Didn't Like |  | 26.10 Pattern Matching Quick Reference with Examples